﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Text;
using System.Threading.Tasks;
using Cofe.Core;
using Cofe.Core.Logger;

namespace Cofe.Web.Feed
{
    public interface IFeedBuilder 
    {

        UriTemplate FeedTemplate { get; set;  }
        UriTemplate EventTemplate { get; set;  }
        UriTemplate EntryTemplate { get; set; }
    }

    public interface IFeedBuilder<T> : IFeedBuilder
        where T : EventArgs
    {
       

        Feed<T> LoadRecentEventsFeed(string fileName);
        Feed<T> CreateRecentEventsFeed(FeedId feedId, FeedId previosFeedId);
        Feed<T> CreateNextFeed(FeedId feedId);
        Feed<T> CreateArchiveFeed(Feed<T> feed, FeedId currentFeedId, FeedId nextFeedId);

        FeedEntry<T> BuildEntry(IEventLog<T> eventLog);
    }
}
